(deftemplate intrebare
        (slot stringIntrebare)
        (slot raspuns)
)
(deftemplate diagnosticMedical
(slot nume)
)
(assert (intrebare (stringIntrebare nil)(raspuns nil)))
(printout t  crlf "      DIAGNOSTIC MEDICAL  " crlf " Va rugam sa raspundeti cu DA sau NU." crlf )



(defrule q1
        (intrebare (stringIntrebare nil)(raspuns nil))
        =>
        (printout t "Aveti febra? (DA/NU)" crlf)
        (bind ?r (read))                                     
        (assert (intrebare (stringIntrebare "Aveti febra? (DA/NU)")(raspuns ?r)))
)


(defrule q2
        (intrebare (stringIntrebare "Aveti febra? (DA/NU)")(raspuns DA))
        =>
        (printout t "Tusiti? (DA/NU)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Tusiti? (DA/NU)")(raspuns ?r)))
)


(defrule q3
        (intrebare (stringIntrebare "Tusiti? (DA/NU)")(raspuns DA))
        =>
        (printout t "DIAGNOSTIC ->> Aveti o viroza respiratorie." crlf)
)

(defrule q4
        (intrebare (stringIntrebare "Tusiti? (DA/NU)")(raspuns NU))
        =>
        (printout t "Aveti dureri? (DA)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti dureri? (DA)")(raspuns ?r)))
)

(defrule q5
        (intrebare (stringIntrebare "Aveti dureri? (DA)")(raspuns DA))
        =>
        (printout t "Aveti dureri de gat? (DA/NU)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti dureri de gat? (DA/NU)")(raspuns ?r)))
)

(defrule q6
        (intrebare (stringIntrebare "Aveti dureri de gat? (DA/NU)")(raspuns DA))
        =>
        (printout t "DIAGNOSTIC ->> Aveti amigdalita." crlf)

)
(defrule q7
        (intrebare (stringIntrebare "Aveti dureri de gat? (DA/NU)")(raspuns NU))
        =>
        (printout t "Aveti dureri lombare? (DA/NU)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti dureri lombare? (DA/NU)")(raspuns ?r)))
)

(defrule q8
        (intrebare (stringIntrebare "Aveti dureri lombare? (DA/NU)")(raspuns DA))
        =>
        (printout t "DIAGNOSTIC->> Aveti o infectie urinara. " crlf)

)
(defrule q9
        (intrebare (stringIntrebare "Aveti dureri lombare? (DA/NU)")(raspuns NU))
        =>
        (printout t "DIAGNOSTIC->> Aveti o boala renala." crlf)
)



(defrule q10
        (intrebare (stringIntrebare "Aveti febra? (DA/NU)")(raspuns NU))
        =>
        (printout t "Aveti dureri?(DA/NU)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti dureri? (DA/NU)")(raspuns ?r)))
)

(defrule q11
        (intrebare (stringIntrebare "Aveti dureri? (DA/NU)")(raspuns DA))
        =>
        (printout t "Aveti dureri de cap? (DA/NU)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti dureri de cap? (DA/NU)")(raspuns ?r)))
)

(defrule q12
        (intrebare (stringIntrebare "Aveti dureri de cap? (DA/NU)")(raspuns DA))
        =>
        (printout t "DIAGNOSTIC ->> Aveti HTA- hipertensiune arteriala. " crlf)
)


(defrule q13
        (intrebare (stringIntrebare "Aveti dureri de cap? (DA/NU)")(raspuns NU))
        =>
        (printout t "Aveti dureri articulare? (DA)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti dureri articulare? (DA)")(raspuns ?r)))
)

(defrule q14
        (intrebare (stringIntrebare "Aveti dureri articulare? (DA)")(raspuns DA))
        =>
        (printout t "DIAGNOSTIC ->>Aveti o boala reumatica. " crlf)
)

(defrule q15
        (intrebare (stringIntrebare "Aveti dureri? (DA/NU)")(raspuns NU))
        =>
        (printout t "Aveti culoarea pielii schimbata? (DA)" crlf)
        (bind ?r (read))
        (assert (intrebare (stringIntrebare "Aveti culoarea pielii schimbata? (DA)")(raspuns ?r)))
)
(defrule q16
        (intrebare (stringIntrebare "Aveti culoarea pielii schimbata? (DA)")(raspuns DA))
        =>
        (printout t "DIAGNOSTIC ->> Aveti o posibila hepatita. Va sugeram sa efectuati si alte analize." crlf)
)

(run)
(facts)